package com.youlin.entities;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.time.LocalTime;

/**
 * 告别会预约表
 * @author ${author}
 * @since 2020-06-04
 */
@NoArgsConstructor
@Data
@Accessors(chain=true)
public class BygAppointment implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
    * 预约ID
    */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
    * 告别厅ID
    */
    private Integer fhId;

    /**
    * 逝者ID
    */
    private Integer dmId;

    /**
    * 告别厅预约使用日期
    */
    private LocalDate useDate;

    /**
    * 告别厅预约使用开始时间
    */
    private LocalTime startTime;

    /**
    * 告别厅预约使用结束时间
    */
    private LocalTime endTime;

    /**
    * 承办人ID
    */
    private Integer undertakerId;

    /**
    * 告别会状态：0-新建、1-已预约、2-待审核、3-审核中、4-审核通过
    */
    private Integer status;

    /**
    * 操作者ID
    */
    private Integer operatorId;

    /**
    * 新建时间
    */
    private LocalDateTime createTime;

    /**
    * 确定预约时间
    */
    private LocalDateTime operateTime;

    /**
    * 待审核时间
    */
    private LocalDateTime preReviewTime;

    /**
    * 审核者ID
    */
    private Integer reviewerId;

    /**
    * 审核中时间
    */
    private LocalDateTime reviewingTime;

    /**
    * 已审核时间
    */
    private LocalDateTime postReviewTime;

    /**
    * 最后修改时间
    */
    private LocalDateTime updateTime;

    /**
    * 是否逻辑删除
    */
    @TableLogic
    private Boolean isDel;

    private String uuId;

    // 逝者信息
    @TableField(exist = false)
    private BygDeadMan deadMan;

    // 承办人信息
    @TableField(exist = false)
    private BygUndertaker undertaker;

    // 操作者信息
    @TableField(exist = false)
    private BygAdmin operator;

    // 审核者信息
    @TableField(exist = false)
    private BygAdmin reviewer;

}
